﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Storage;
using System.IO;

namespace UserInterface
{
    public class PresentPrinter
    {
        public static void printTasties(List<Object> Tasties)
        {
            Console.WriteLine("В подарке находятся: ");
            for (int i = 0; i < Tasties.Count(); i++)
            {
                if (Tasties.ElementAt(i) is Chocolate_sweets)
                {
                    Chocolate_sweets obj = (Chocolate_sweets)Tasties.ElementAt(i);
                    Console.WriteLine((i + 1) + ". Шоколадная конфета. " + obj.get_weight().ToString() + " г.");         
                }
                else if (Tasties.ElementAt(i) is Jujube)
                {
                    Jujube obj = (Jujube)Tasties.ElementAt(i);
                    Console.WriteLine((i + 1) + ". Желейная конфета. " + obj.get_weight().ToString() + " г.");  
                }
                else if (Tasties.ElementAt(i) is Caramel)
                {
                    Caramel obj = (Caramel)Tasties.ElementAt(i);
                    Console.WriteLine((i + 1) + ". Карамель. " + obj.get_weight().ToString() + " г."); 
                }
                else if (Tasties.ElementAt(i) is White)
                {
                    White obj = (White)Tasties.ElementAt(i);
                    Console.WriteLine((i + 1) + ". Белый шоколад. " + obj.get_weight().ToString() + " г."); 
                }
                else if (Tasties.ElementAt(i) is Dark)
                {
                    Dark obj = (Dark)Tasties.ElementAt(i);
                    Console.WriteLine((i + 1) + ". Темный шоколад. " + obj.get_weight().ToString() + " г."); 
                }
                else if (Tasties.ElementAt(i) is Waffle)
                {
                    Waffle obj = (Waffle)Tasties.ElementAt(i);
                    Console.WriteLine((i + 1) + ". Вафли. " + obj.get_weight().ToString() + " г."); 
                }
                else if (Tasties.ElementAt(i) is Cookie)
                {
                    Cookie obj = (Cookie)Tasties.ElementAt(i);
                    Console.WriteLine((i + 1) + ". Печенье. " + obj.get_weight().ToString() + " г."); 
                }
            }
        }
        public static void printTotal(int Total)
        {
            Console.WriteLine("Вес подарка " + Total.ToString() + " г.");
        }
    }
    public class PresentReader
    {
        public static void showList()
        {
            Console.WriteLine("Список сладостей:");
            Console.WriteLine("1. Шоколадная конфета.");
            Console.WriteLine("2. Желейная конфета.");
            Console.WriteLine("3. Карамель.");
            Console.WriteLine("4. Белый шоколад.");
            Console.WriteLine("5. Темный шоколад.");
            Console.WriteLine("6. Вафли.");
            Console.WriteLine("7. Печенье.");
        }
        public static int readTasties()
        {
            Console.WriteLine("Выберите номер кондитерского изделия.");
            string s = Console.ReadLine();
            int num = int.Parse(s);
            //ConsoleLogger.Log("Был выбран элемент "+s);
            return num;
        }
        public static int readMore()
        {
            Console.WriteLine("Добавить еще сладостей в подарок? (0-нет, 1-да)");
            string s = Console.ReadLine();
            int num = int.Parse(s);
            return num;
        }
        public static int readWeight()
        {
            Console.WriteLine("Введите вес в граммах.");
            string s = Console.ReadLine();
            int num = int.Parse(s);
            return num;
        }
    }

    public class ConsoleLogger : ILogger
    {
        public void Log(string mes)
        {
            Console.WriteLine(mes);
        }
    }
    public class FileLogger : ILogger
    {
        public void CreateFile()
        {
            FileInfo fi = new FileInfo("logger.dat");
            fi.Create().Close();
        }
        public void Log(string mes)
        {
            FileInfo fi = new FileInfo("logger.dat");
            StreamWriter w = fi.AppendText();
            w.WriteLine(mes);
            w.Close();
        }
    }

}
